using System;
using System.Data;
using System.Text;
using System.Collections.Generic;

#region user code using
#endregion user code using

namespace Adoor.Ouvrages
{
	#region user code namespace
	#endregion user code namespace
	
	
	public abstract class Auteur
	#region user code implements
	#endregion user code implements
	{
	
		public const int NomLength = 30;
		
		public virtual System.String Nom
		{
			get
			{
				System.String  value = this.m_Nom;
				#region user code get public System.String Nom
				#endregion user code get public System.String Nom
				return value; 
			}
			set
			{ 
				#region user code set public System.String Nom
				#endregion user code set public System.String Nom				
				this.m_Nom = value;
				OnNomChanged();
			}
		}
		
		public event EventHandler NomChanged;
		
		protected virtual void OnNomChanged()
		{				
			if(NomChanged != null)
				NomChanged(this, System.EventArgs.Empty);			
					
			#region user code OnNomChanged
			#endregion user code OnNomChanged				
		}

		public const int PrenomLength = 30;
		
		public virtual System.String Prenom
		{
			get
			{
				System.String  value = this.m_Prenom;
				#region user code get public System.String Prenom
				#endregion user code get public System.String Prenom
				return value; 
			}
			set
			{ 
				#region user code set public System.String Prenom
				#endregion user code set public System.String Prenom				
				this.m_Prenom = value;
				OnPrenomChanged();
			}
		}
		
		public event EventHandler PrenomChanged;
		
		protected virtual void OnPrenomChanged()
		{				
			if(PrenomChanged != null)
				PrenomChanged(this, System.EventArgs.Empty);			
					
			#region user code OnPrenomChanged
			#endregion user code OnPrenomChanged				
		}

		public virtual IList<Adoor.Ouvrages.Livre > Livre
		{
			get { return this.m_Livre; }
		}

		
		/// <summary>
		/// Called when user is creating a new entity.
		/// </summary>
		protected virtual void OnCreate(object[] args)
		{
			Nom = "";		
	Prenom = "";		
	
			#region user code OnCreate
			#endregion user code OnCreate			
		}
		
		/// <summary>
		/// Called when user is retreiving an entity from storage
		/// </summary>
		protected virtual void OnMaterialize()
		{
			#region user code OnMaterialize
			#endregion user code OnMaterialize
		}
		
		public virtual System.String ModifiePar
		{
			get
			{
				System.String  value = this.m_ModifiePar;
				#region user code get public System.String ModifiePar
				#endregion user code get public System.String ModifiePar
				return value; 
			}
		}
		
		public virtual System.DateTime ModifieLe
		{
			get
			{
				System.DateTime  value = this.m_ModifieLe;
				#region user code get public System.String ModifieLe
				#endregion user code get public System.String ModifieLe
				return value; 
			}
		}
		
		public virtual System.String TableName
		{
			get
			{
				System.String  value = this.m_TableName;
				#region user code get public System.String TableName
				#endregion user code get public System.String TableName
				return value; 
			}
		}
		
		protected abstract System.String m_ModifiePar { get; }
		
		protected abstract System.String m_TableName { get; }
		
		protected abstract System.DateTime m_ModifieLe { get; }
		
		
		protected abstract System.String m_Nom { get; set; }

		protected abstract System.String m_Prenom { get; set; }

		protected abstract IList<Adoor.Ouvrages.Livre > m_Livre { get; }


		#region user code class
		#endregion user code class
	}
}
